package com.sunyur.tailor.channel.web.outer.invocie.dto;

import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.Digits;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;

/**
 * @Author XuHui
 * @Description 预制发票支付回传参数
 * @Date 19:13 2021/12/30
 **/
@Data
public class PaybackDTO {

	/**
	 * 必填，指定预制发票号
	 */
	@NotBlank(message = "发票号不能为空")
	private String code;

	/**
	 * 操作人编号
	 */
	@NotBlank(message = "操作人编号不能为空")
	private String operatorCode;

	/**
     * 必填，发票支付明细
	 */
	@Valid
	@NotEmpty(message = "发票支付明细不能为空")
	private List<InvoicePayItem> invoicePayItems;
	
	@Data
	public class InvoicePayItem {
		/**
		 * 非必填，是否为预付款核销 0 否 1是
		 */
		private Integer isAdvance;
		/**
		 * 必填，付款金额  必须大于零   如需传负数金额 则plusMinus 传 0 即可
		 */
		@NotNull(message = "付款金额不能为空")
		@Digits(integer = 20,fraction = 2)
		private BigDecimal payAmount;
		/**
		 * 必填，付款流水号
		 */
		@NotBlank(message = "付款流水号不能为空")
		private String payCode;
		/**
		 * 必填，付款时间
		 */
		@NotNull(message = "付款时间不能为空")
		private Integer payTime;
		/**
		 * 非必填，付款方式 1 银行转账 参考OrderPayType
		 */
		private Integer payType;
		/**
		 * 必填，正负标识 0 负 1 正
		 */
		@NotBlank(message = "正负标识不能为空")
		private Integer plusMinus;
		/**
		 * 非必填，备注信息
		 */
		private String remark;
	}
}
